package com.jyniubi.gmail.index.annotation;

import java.lang.annotation.*;

/**
 * @author zjy
 */
@Target({ ElementType.METHOD}) //ElementType.TYPE,这个是用于类上面，此次不需要
@Retention(RetentionPolicy.RUNTIME)
//@Inherited 注解类型是被继承的
@Documented
public @interface GmailCache {
    /**
     * 缓存前缀
     * @return
     */
    String prefix() default "gmall:cache:";

    /**
     * 缓存的过期时间，默认100分钟
     * @return
     */
    int timeout() default 100;

    /**
     * 为了防止缓存雪崩，给缓存时间加随机值
     * 这里可以知道随机值范围，默认10分钟
     * @return
     */
    int random() default 10;

    /**
     * 为了防止缓存击穿，添加分布式锁
     * 这里可以指定分布式锁前缀
     * @return
     */
    String lock() default "gmall:lock";
}
